Embedded software is an indispensable part of modern communication systems. Typically, every electronics card or other module in the system includes an embedded central processing unit (CPU), which is responsible for monitoring and controlling the performance of the module. Device driver software enables the CPU to communicate with the various hardware components on the card and to handle interrupts and other real-time events generated by the components. At a higher level, application handler software interacts with the device drivers and provides the CPU with the means to perform higher-level monitoring and control functions, such as configuration, performance monitoring, maintenance and alarm handling. To communicate with other modules and enable centralized management of the entire, multi-card system, the CPU must also comply with external interface requirements such as the Standard Network Management Protocol (SNMP) and use of a standard Management Information Base (MIB).
Developing the embedded software required for a complex system of electronics cards is a major engineering task. There are development tools on the market to assist in this task, by allowing common components to be reused from card to card. For example, at the device driver level, Jungo (Netanya, Israel) offers products named WinDriver (for Windows operating systems) and KernelDriver (for Linux kernel-based operating systems), which use a wizard to produce software code for bus-based hardware cards. The wizard asks the developer for standard resource locations, such as memory locations, interrupts, and registers located on the card. The product then outputs source code functions that allow the operating system to manipulate the resources.
At the system level, the Solstice TMN Agent Toolkit, available from Sun Microsystems Inc. (Palo Alto, Calif.), enables development of management agent software, in compliance with the Telecommunications Management Network (TMN) standard of the International Telecommunications Union (ITU-T). The agent acts as an interpreter and filter, sending commands to the network element it controls in order to get the data it requires. Agents thus encapsulate the interface between a hardware card and the MIB or SNMP network. The TMN Agent Toolkit consists of a core agent, containing a library of functions common to all agents. The core agent manages a MIB, to which it provides synchronous and asynchronous access. The toolkit also contains a compiler which accepts a formatted description of the hardware such as register location, memory configuration, and interrupt ports, and produces C-structures and skeleton callback functions which can be linked with the core agent. Application handler software, which is specific to the resources of the card to be managed by the agent, is left to be generated manually by the software developer.